package com.superme.filemanager.controller;

import com.superme.common.beans.PageRequest;
import com.superme.common.beans.PageResponse;
import com.superme.common.beans.Result;
import com.superme.filemanager.pojo.entity.FileInfo;
import com.superme.filemanager.service.FilesService;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.multipart.MultipartFile;

import javax.annotation.Resource;

/**
 * 文件管理前端控制器
 * 作者: yanruizhi
 * 时间: 2023/7/31 9:42
 */
@RestController
@RequestMapping("file")
public class FileController {
    @Resource
    private FilesService fileService;

    /**
     * 文件上传接口
     *
     * @param file 文件对象
     */
    @PostMapping("upload")
    public void upload(MultipartFile file) {
        fileService.upload(file);
    }

    /**
     * 获取文件访问地址
     *
     * @param objectName 文件名称（oss中的key）
     * @return 文件访问地址
     */
    @PostMapping("getFileUrl")
    public String getFileUrl(String objectName) {
        return fileService.getFileUrl(objectName);
    }

    /**
     * 删除文件
     *
     * @param fileInfoId 文件信息表主键id
     */
    @PostMapping("deleteFile")
    public void deleteFile(String fileInfoId) {
        fileService.deleteFile(fileInfoId);
    }

    @PostMapping("getPage")
    public PageResponse<FileInfo> getPage(@RequestBody FileInfo fileInfo, PageRequest page) {
        return fileService.getPage(fileInfo,page);
    }



}
